java字符串 "select * from user where username = "+"'username'"

来源:百度知道 编辑:UC知道 时间:2024/05/15 07:38:16
public static User validate(String username,String password) {
User u = null;
String sql ="select * from user where username = "+"'username'";

这个username为什么要加双引号和单引号

因为正常的sql完整语句应该是:
select * from user where username = 'username'

username上的双引号和单引号的意义不同,单引号是sql语句需要的,指定where username=的值,双引号是java需要的,两个字符串相加要用到,其实java将username上的单引号作为字符串来处理了,单引号对于java编译没有实际意义,在数据库查询的时候单引号才具有实际的语法意义

这个绝对不对。
username是程序中的一个变量吧,表达式应该是这样的:
String sql="select * from user where username=\'"+username+"\'";

兄弟们,你们还是新手哈!

JDK建议使用参数替补。
String username="pujia";
String password="12345";
int age=22;
PreparedStatement pstmt = con.prepareStatement("SELECT id,name,address FROM user WHERE username=? AND password=? AND age>?");
pstmt.setString(1,username);
pstmt.setString(2, password);
pstmt.setInt(3, age);
.....
框架里也一样

"select * from user where username = "+"'username'";
因为username在sql中是char型
"insert into char values(" + "'username')";跟这个意思差不多